// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2017 exceet electronics GmbH
 * Copyright (C) 2018 Kontron Electronics GmbH
 * Copyright (c) 2019 Krzysztof Kozlowski <krzk@kernel.org>
 */

#include "imx6ul.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Kontron N6310 SOM";
	compatible = "kontron,imx6ul-n6310-som", "fsl,imx6ul";

	memory@80000000 {
		reg = <0x80000000 0x10000000>;
		device_type = "memory";
	};
};

&ecspi2 {
	cs-gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi2>;
	status = "okay";

	spi-flash@0 {
		compatible = "mxicy,mx25v8035f", "jedec,spi-nor";
		spi-max-frequency = <50000000>;
		reg = <0>;
	};
};

&fec1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet1 &pinctrl_enet1_mdio>;
	phy-mode = "rmii";
	phy-handle = <&ethphy1>;
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy1: ethernet-phy@1 {
			reg = <1>;
			micrel,led-mode = <0>;
			clocks = <&clks IMX6UL_CLK_ENET_REF>;
			clock-names = "rmii-ref";
		};
	};
};

&fec2 {
	phy-mode = "rmii";
	status = "disabled";
};

&qspi {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_qspi>;
	status = "okay";

	spi-flash@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "spi-nand";
		spi-max-frequency = <108000000>;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
		reg = <0>;

		partition@0 {
			label = "ubi1";
			reg = <0x00000000 0x08000000>;
		};

		partition@8000000 {
			label = "ubi2";
			reg = <0x08000000 0x08000000>;
		};
	};
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_reset_out>;

	pinctrl_ecspi2: ecspi2grp {
		fsl,pins = <
			MX6UL_PAD_CSI_DATA03__ECSPI2_MISO      0x100b1
			MX6UL_PAD_CSI_DATA02__ECSPI2_MOSI      0x100b1
			MX6UL_PAD_CSI_DATA00__ECSPI2_SCLK      0x100b1
			MX6UL_PAD_CSI_DATA01__GPIO4_IO22       0x100b1
		>;
	};

	pinctrl_enet1: enet1grp {
		fsl,pins = <
			MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN      0x1b0b0
			MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER      0x1b0b0
			MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
			MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
			MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN      0x1b0b0
			MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
			MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
			MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b009
		>;
	};

	pinctrl_enet1_mdio: enet1mdiogrp {
		fsl,pins = <
			MX6UL_PAD_GPIO1_IO07__ENET1_MDC         0x1b0b0
			MX6UL_PAD_GPIO1_IO06__ENET1_MDIO        0x1b0b0
		>;
	};

	pinctrl_qspi: qspigrp {
		fsl,pins = <
			MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK        0x70a1
			MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00   0x70a1
			MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01     0x70a1
			MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02     0x70a1
			MX6UL_PAD_NAND_CLE__QSPI_A_DATA03       0x70a1
			MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B        0x70a1
		>;
	};

	pinctrl_reset_out: rstoutgrp {
		fsl,pins = <
			MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09      0x1b0b0
		>;
	};
};
